import request from '@/sheep/request';

// ================= 工具函数 ================= 
/**
 * 封装定位功能（支持Promise和回调两种模式）
 * @param {boolean} useDefault 是否在失败时使用南京默认坐标 
 */
const getLocation = (useDefault = true) => {
	return new Promise((resolve, reject) => {
		uni.getLocation({
			type: 'wgs84', // 根据接口要求可改为gcj02 
			geocode: true,
			success: res => {
				console.log(' 定位成功:', res);
				resolve({
					lng: res.longitude,
					lat: res.latitude,
					address: res.address || '未知地址'
				});
			},
			fail: err => {
				console.error(' 定位失败:', err);
				const messages = {
					1: '请开启定位权限',
					2: '当前位置不可用',
					3: '定位超时，请检查网络'
				};
				uni.showToast({
					title: messages[err.errCode] || '定位失败',
					icon: 'none'
				});

				// 启用默认坐标（南京新街口）
				if (useDefault) {
					resolve({
						lng: 118.796624,
						lat: 32.059344
					});
				} else {
					reject(err);
				}
			}
		});
	});
};

// ================= API接口 ================= 
const LifeCircleApi = {
	// 获取门店列表（动态传参版）
	getStoreList: async () => {
		// 自动注入定位坐标 
		const {
			lng,
			lat
		} = await getLocation();
		return request({
			url: '/trade/life-c-circle/store/list',
			method: 'GET',
			params: {
				longitude: lng,
				latitude: lat
			} // 仅传定位坐标 
		});
	},

	// 其他接口保持原样 
	getBannerList: () => request({
		url: '/promotion/banner/list?position=6'
	}),
	getStoreTypeList: () => request({
		url: '/trade/life-c-circle/store/getTypeList'
	}),
	getStoreDetail: id => request({
		url: `/trade/life-c-circle/store/get?id=${id}`
	}),
	getStorePage: (params) => request({
		url: `/trade/life-c-circle/store/page`,
		params,
		method: 'GET',
		custom: {
			showLoading: false,
			showError: false,
		},
	}),
	// 获取门店列表（动态传参版）
	getStoreListAll: async () => {
		return request({
			url: '/trade/life-c-circle/store/listAll',
			method: 'GET',
			params: {
				
			}
		});
	},
};

export default LifeCircleApi;